As one semiconductor nonvolatile memory, an associative memory (Content Addressable Memory: CAM) is known. The associative memory has a function of retrieving an address having specified content unlike a normal memory in which an address is specified to read and write contents. The associative memory is widely used for applications of cache control of an MPU and address lookup of Internet since it is extremely high speed.
However, a large number of elements are normally required in mounting this type of associative memory, it is difficult to reduce the area and power consumption and its applications are limited (K. Pagiamtzis, IEEE JOURNAL OF SOLID-STATE CIRCUITS 41,712 (2006)).